"""
@Project:${2108a 人工智能}
@File:custom_resp_json.py
@Author:周家昌
@Date:8:59
"""
from flask import make_response, current_app
from flask_restful.utils import PY3
from json import dumps


# 重写output_json函数
# 使用api.representation装饰器装饰

def custom_json(data, code, headers=None):
    # 定制JSON格式
    # 注意: 由于返回错误响应是, 已经在响应数据中包含message, 所以不必要再进行定制了, 所以进行了if判断
    if 'message' not in data:
        data = {
            'message': 'ok',
            'data': data
        }
    settings = current_app.config.get('RESTFUL_JSON', {})

    if current_app.debug:
        settings.setdefault('indent', 4)
        settings.setdefault('sort_keys', not PY3)

    dumped = dumps(data, **settings) + "\n"

    resp = make_response(dumped, code)
    resp.headers.extend(headers or {})
    return resp